package controladores;


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import modelos.MCategoria;
import vistas.VCategoria;


public class CCategoria implements ActionListener{

    private VCategoria vista;
    private MCategoria modelo;

    public CCategoria(VCategoria vista) {
        this.vista = vista;
        modelo = new MCategoria();
    }

    public void actionPerformed(ActionEvent ae) {
        if(ae.getActionCommand().equals("Registrar")){
                registrar();
                 
        }
        else if(ae.getActionCommand().equals("Consultar")){
            consultar();
        }
        else if(ae.getActionCommand().equals("Eliminar")){
            eliminar();
            vista.reiniciar();
        }
        else if(ae.getActionCommand().equals("Actualizar")){
                actualizar();
                vista.reiniciar();
        }
        else if(ae.getActionCommand().equals("Salir")){
            vista.setVisible(false);
            vista.reiniciar();
        }
        else{
            vista.reiniciar();
        }            
    }

   public void registrar(){
       modelo.setCodigo(Integer.parseInt(vista.getTxtCodigo().getText()));
       if(vista.validarCamposVacios())
           if(modelo.validarCodigo("Categoria"))
               if(modelo.validarDescripcion("Categoria", vista.getTxtDescripcion().getText().toUpperCase())){
                   modelo.setDescripcion(vista.getTxtDescripcion().getText());
                   modelo.setEstatus("A");
                   if(modelo.registar()){
                       JOptionPane.showMessageDialog(new JFrame(),"La categoria se ha registrado exitosamente","Comida Rapida",JOptionPane.INFORMATION_MESSAGE); 
                       vista.reiniciar();
                   }
               }
               else
                   JOptionPane.showMessageDialog(new JFrame(),"La descripcion ya se encuentra registrada","Comida Rapida",JOptionPane.INFORMATION_MESSAGE);
            else
                JOptionPane.showMessageDialog(new JFrame(),"El codigo ya se encuentra registrada","Comida Rapida",JOptionPane.INFORMATION_MESSAGE);
       else;
            
   }

   public void consultar(){
       if(!vista.getTxtCodigo().getText().isEmpty()){
           modelo.setCodigo(Integer.parseInt(vista.getTxtCodigo().getText()));
           modelo.setEstatus("A");
           if(modelo.consultar()){
                vista.getTxtCodigo().setEditable(false);
                vista.getTxtDescripcion().setText(modelo.getDescripcion());
            }
           else
               JOptionPane.showMessageDialog(new JFrame(),"El codigo ingresado no pertenece a ninguna categoria","Comida Rapida",JOptionPane.INFORMATION_MESSAGE);
        }
       else
           JOptionPane.showMessageDialog(new JFrame(),"El campo codigo esta vacio","Comida Rapida",JOptionPane.INFORMATION_MESSAGE);

   }

    private void eliminar() {
       if(!vista.getTxtCodigo().getText().isEmpty()){
           modelo.setCodigo(Integer.parseInt(vista.getTxtCodigo().getText()));
           if(modelo.eliminar())
               JOptionPane.showMessageDialog(new JFrame(),"La categoria se ha eliminado exitosamente","Comida Rapida",JOptionPane.INFORMATION_MESSAGE);
           else
               JOptionPane.showMessageDialog(new JFrame(),"El codigo ingresado no pertenece a ninguna categoria","Comida Rapida",JOptionPane.INFORMATION_MESSAGE);
        }
       else
           JOptionPane.showMessageDialog(new JFrame(),"El campo codigo esta vacio","Comida Rapida",JOptionPane.INFORMATION_MESSAGE);

    }

    private void actualizar() {
       if(vista.validarCamposVacios())
               if(modelo.validarDescripcion("Categoria", vista.getTxtDescripcion().getText().toUpperCase())){
                    modelo.setCodigo(Integer.parseInt(vista.getTxtCodigo().getText()));
                    modelo.setDescripcion(vista.getTxtDescripcion().getText().toUpperCase());
                    if(modelo.actualizar())
                        JOptionPane.showMessageDialog(new JFrame(),"La categoria se ha actualizado exitosamente","Comida Rapida",JOptionPane.INFORMATION_MESSAGE);
                    else
                        JOptionPane.showMessageDialog(new JFrame(),"El codigo ingresado no pertenece a ninguna categoria","Comida Rapida",JOptionPane.INFORMATION_MESSAGE);
                 }
                 else
            JOptionPane.showMessageDialog(new JFrame(),"La descripcion ya se encuentra registrada","Comida Rapida",JOptionPane.INFORMATION_MESSAGE);
          
    }

}
